/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Control;

import Entidad.Reporte;
import java.util.ArrayList;
import java.util.Calendar;

/**
 *
 * @author Omar Beltran
 */

//Simple Moving Average
public class SMA {
    
    private ArrayList<Reporte> reportes = new ArrayList<>();
    private ArrayList<Reporte> pronosticos = new ArrayList<>();
    
    private double promedio = 0;
    private int cantidadPronosticos = 0;
            
    //constructor default
    public SMA(){}
    
    //
    public SMA(ArrayList<Reporte> reportes, int cantidadPronosticos) {
        this.reportes = reportes;
        this.cantidadPronosticos = cantidadPronosticos;
        determinaPromedio();
    }
    
    //metodo que permite calcular el promedio de los datos ingresados
    private void determinaPromedio(){
        for(int i = 0 ; i < reportes.size() ; i++)
            promedio += (reportes.get(i).getTemperatura());
    }    
    
    //metodo que permite calcular los pronosticos
    public ArrayList<Reporte> determinarPronosticos(){
       
        pronosticos.add(new Reporte(promedio,Calendar.getInstance())); 
        
        double pronostico = 0;
        for(int i = 0 ; i < cantidadPronosticos ; i++){
            
            pronostico = ((pronosticos.get(i).getTemperatura()/reportes.size())
                           -(reportes.get(i).getTemperatura()/reportes.size()))
                          +(pronosticos.get(i).getTemperatura());
            pronosticos.add(new Reporte(pronostico,Calendar.getInstance()));
           
        }
       
        return pronosticos;
    }    
    
    
}
